﻿/**********************************************************************
 * @file   OperatorsPostCurvePlot.h
 * @brief  后处理曲线操作器
 * @author liuzhonghua (liuzhonghuaszch@163.com)
 * @date   2025-02-25
 *********************************************************************/

#ifndef _OPERATENOISESPECTROGRAM_H
#define _OPERATENOISESPECTROGRAM_H

#include "FITK_Kernel/FITKCore/FITKActionOperator.h"
#include "FITK_Kernel/FITKCore/FITKOperatorRepo.h"

namespace ModelOper
{
    /**
     * @brief  后处理曲线操作器
     * @author liuzhonghua (liuzhonghuaszch@163.com)
     * @date   2025-02-25
     */
    class OperatorsPostCurvePlot : public Core::FITKActionOperator
    {
        Q_OBJECT;
    public:
        /**
         * @brief   Construct a new Oper CurvePlot Post object
         * @author  liuzhonghua (liuzhonghuaszch@163.com)
         * @date     2025-02-10
         */
        explicit OperatorsPostCurvePlot() = default;

        /**
         * @brief   Destroy the Oper CurvePlot Post object
         * @author  liuzhonghua (liuzhonghuaszch@163.com)
         * @date     2025-02-10
         */
        virtual ~OperatorsPostCurvePlot() = default;
        /**
         * @brief UI相关操作
         * @return  是否成功
         * @author  WangZhenYu (wangzhenyu@diso.cn)
         * @date    2024-11-25 
         */
        virtual bool execGUI() override;
        /**
         * @brief 执行业务操作
         * @return  是否成功
         * @author  WangZhenYu (wangzhenyu@diso.cn)
         * @date    2024-11-25 
         */
        virtual bool execProfession() override;
    };
    // 按钮注册相关操作
    Register2FITKOperatorRepo(actionNoiseSpectrogramResult, OperatorsPostCurvePlot);
    Register2FITKOperatorRepo(actionVibrancySpectrogramResult, OperatorsPostCurvePlot);
    Register2FITKOperatorRepo(actionSemi_infiniteFluidNoise, OperatorsPostCurvePlot);
}


#endif // OPERATENOISESPECTROGRAM_H
